--[[ 编码: WMS-81-15 名称: 出入库测试-新增窗口-选容器前 作者:HAN 日期:2025-1-29 级别:固定 (说明本段代码在项目中不太会变化) 函数: BeforeSelectCntr 功能: 弹出容器查询面板 更改记录: --]] json = require ("json") mobox = require ("OILua_JavelinExt") m3 = require("oi_base_mobox") function BeforeSelectCntr ( strLuaDEID ) local nRet, strRetInfo -- 获取仓库编码 nRet, strRetInfo = mobox.getCurEditDataObjAttr( strLuaDEID, "S_TEST_TYPE","S_TO_AREA_CODE","S_TO_LOC_CODE" ) if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "获取当前编辑属性失败! "..strRetInfo ) end local obj_attrs = json.decode( strRetInfo ) local test_type = lua.Get_StrAttrValue( obj_attrs[1].value ) local area_code = lua.Get_StrAttrValue( obj_attrs[2].value ) local loc_code = lua.Get_StrAttrValue( obj_attrs[3].value ) if ( area_code == '' or test_type == '') then return end local seg = {} seg = lua.split( area_info, '#' ) local area_code = seg[1] local strCondition = '' if ( loc_code == '' or loc_code == nil ) then mobox.setInfo( strLuaDEID, "必须先选一个货位!" ) return end if ( test_type == "入库" ) then -- 如果是入库,选的容器必须是没有和货位绑定的 strCondition = 'S_CODE NOT IN ( Select S_CNTR_CODE From TN_Loc_Container )' else -- 如果是出库,选的容器必须是在选中库区的 strCondition = 'S_CODE IN ( Select S_CNTR_CODE From TN_Loc_Container ' strCondition = strCondition.." Where S_LOC_CODE = '"..loc_code.."')" end -- 设置 action 的参数 local action = {} local value = {} action.action_type = "open_data_query_dlg" value.multi_choice = false -- 不多选 value.cls_name = "Container" -- 选择的数据类标识 value.grid_style = "basis-选择面板用" -- 选择面板中 GridStyle value.condition = strCondition value.order = "S_CODE" action.value = value lua.Debug( strLuaDEID, debug.getinfo(1), "action", action ) nRet, strRetInfo = mobox.setAction( strLuaDEID, '['..lua.table2str(action)..']' ) if (nRet ~= 0) then lua.Error( strLuaDEID, debug.getinfo(1), strRetInfo ) end end